package pl.com.like.sequoia.biojava.util.impl;

import pl.com.like.sequoia.biojava.util.IConnectService;
import pl.com.like.sequoia.biojava.util.IConnectionHelper;
import pl.com.like.sequoia.dao.bio.IBioObjectHandlerDao;
import pl.com.like.sequoia.dao.bio.IBioParamDao;
import pl.com.like.sequoia.exceptions.LogicalException;
import pl.com.like.sequoia.model.bio.BioObjectHandler;
import pl.com.like.sequoia.model.bio.enums.FileTypeEnum;

public abstract class ConnectService implements IConnectService {

	private IConnectionHelper connectionHelper;
	private IBioObjectHandlerDao bioObjectHandlerDao;
	private IBioParamDao bioParamDao;

	public abstract void completeOptionals(BioObjectHandler bio) throws LogicalException;

	public IBioObjectHandlerDao getBioObjectHandlerDao() {
		return bioObjectHandlerDao;
	}

	public IBioParamDao getBioParamDao() {
		return bioParamDao;
	}

	public IConnectionHelper getConnectionHelper() {
		return connectionHelper;
	}

	/**
	 * return enum value representing type of object
	 * 
	 * @return enum value representing type of object.
	 */
	protected abstract FileTypeEnum getType();

	public void setBioObjectHandlerDao(IBioObjectHandlerDao bioObjectHandlerDao) {
		this.bioObjectHandlerDao = bioObjectHandlerDao;
	}

	public void setBioParamDao(IBioParamDao bioParamDao) {
		this.bioParamDao = bioParamDao;
	}

	public void setConnectionHelper(IConnectionHelper connectionHelper) {
		this.connectionHelper = connectionHelper;
	}

}
